package com.vin.utils;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Utils {

    /**
     * 将给定的字符串进行MD5加密，并返回加密后的字符串。
     * @param original 需要加密的原始字符串
     * @return 加密后的MD5字符串
     */
    public static String getMD5String(String original) {
        if (original == null) {
            return null;
        }
        try {
            // 创建MessageDigest实例，指定MD5算法
            MessageDigest md = MessageDigest.getInstance("MD5");
            // 对原始字符串进行MD5加密
            md.update(original.getBytes());
            // 获取加密后的字节数组
            byte[] digest = md.digest();
            // 将字节数组转换为十六进制字符串
            StringBuilder sb = new StringBuilder();
            for (byte b : digest) {
                sb.append(String.format("%02x", b));
            }
            // 返回加密后的字符串
            return sb.toString();
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException("MD5 algorithm not found", e);
        }
    }


}